In a telecommunications network employing the IEEE 1588 standard, a common time is distributed throughout the network so that network elements within the network are synchronized. According to IEEE 1588-2008, a grandmaster clock on a network element transmits timing information to a clock on another network element using PTP (Precision Time Protocol) messages, typically conveying such information to the boundary on the order of several times a second. When the clock receives timing information, the clock corrects its own local clock with an offset derived from the time stamps in the various PTP messages used to convey the timing information. If the clock acts as a boundary clock, it then transmits its own timing information to other network elements, including possibly other boundary clocks. A clock that only receives timing information and does not convey it onward using IEEE 1588 is a slave clock. The clock delivering timing information to a second clock is referred to as the parent clock of the second clock. On any of these clocks, a port that receives timing information from another clock is referred to as a slave port, and a port that transmits timing information to another clock is referred to as a master port.
A boundary clock or slave clock may receive supervisory information from more than one clock. In such a case the boundary clock or slave clock selects one of these clocks as its parent clock by using a Best Master Clock Algorithm. The boundary or slave clock then uses timing information received from the parent clock to adjust its local clock.
The accuracy, stability, and quality of a clock (referred to herein collectively as the “clock quality”) are included in Announce messages sent from a clock to its slave clock or clocks. When selecting a parent clock to be the “best master clock”, a clock may take into account the clock quality indicated by the possible parent clocks. However the reliability of a parent clock is not taken into account by the clock when selecting amongst parent clocks. The reliability of a parent clock may vary over time. For example a boundary clock that has recently booted up takes a measurable amount of time to synchronize its own clock with that of its grandmaster clock. The Pip messages transmitted by the boundary clock may therefore not accurately reflect the timing signals emanating from the grandmaster clock. The boundary clock may therefore initially introduce errors into the timing information. A clock takes into account the timing information received from its various upstream clocks when selecting one of these clocks to be the parent clock. The clock does not into account, however, the level of reliability of the respective timing information.
The clock also does not adjust its filtering characteristics applied to timing signals received from its selected parent clock. This is because the level of reliability of the received timing information is not known. Low bandwidth filtering is used in order to accommodate high packet delay variation in the network. This can lead to slower and slower synchronization time as a chain of clocks increase in count in large networks.
There is a need to improve the selection of which clock to use as a parent clock, and to provide faster synchronization of local clocks to a grandmaster clock.